/**
 * 圆相关计算的函数（参数r为半径）
 * @param {number} r - 圆的半径
 * @returns {object} 包含周长和面积计算方法的对象
 */
function circleFun(r) {
  // 校验半径是否合法（必须为正数）
  if (typeof r !== 'number' || r <= 0) {
    throw new Error('错误：圆的半径必须是正数！');
  }

  /**
   * 计算圆的周长（公式：2 * π * r）
   * @returns {number} 周长结果（保留4位小数）
   */
  function circumference() {
    return (2 * Math.PI * r).toFixed(4);
  }

  /**
   * 计算圆的面积（公式：π * r²）
   * @returns {number} 面积结果（保留4位小数）
   */
  function area() {
    return (Math.PI * r * r).toFixed(4);
  }

  // 返回包含两个方法的对象
  return {
    circumference: circumference,
    area: area
  };
}

// 暴露函数（供外部模块引入）
module.exports = circleFun;